package org.aileen.blog.mapper;

import org.aileen.blog.model.BlogInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface BlogInfoMapper {
    /**
     *查询所有博客信息展示到博客列表页
     */
    @Select("select id ,title , content , user_id , update_time from `blog` where delete_flag = 0 order by  id desc")
    List<BlogInfo> selectAll();

    /**
     * 根据ID查询博客信息,将当篇详细的博客信息展示给用户
     */
    @Select("select id , title , content , user_id , update_time from `blog` where id = #{id} and delete_flag = 0")
    BlogInfo selectById(Integer id);

    /**
     * 插入博客(写博客)
     */
    @Insert("insert into `blog` (title, content, user_id , update_time) values (#{title}, #{content}, #{userId} , now())")
    Integer insertBlog(BlogInfo blogInfo); // 返回插入的行数,如果返回0则表示插入失败

    /**
     * 更新博客 [使用注解的写法和插入博客类似,只不过需要指定更新的条件],但是对于这种动态SQL的更新操作,我们最好还是使用xml来编写SQL语句
     */
    //@Insert("update `blog` set title = #{title}, content = #{content}, update_time = now() where id = #{id} and delete_flag = 0")
    Integer updateBlog(BlogInfo blogInfo); // 返回更新的行数,如果返回0则表示更新失败

}













